﻿using MiniErp.Entity.DataStreams.DOs.Notice;
using MiniErp.Entity.DataStreams.DTOs.Notice;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MiniErp.Service.BusinessService.IService.Notice
{
    /// <summary>
    /// 用户回复公告服务接口
    /// </summary>
    public interface IUserInfoNoticesReplyService
    {
        /// <summary>
        /// 根据用户编号以及时间查询所有公告回复 //分页
        /// </summary>
        /// <param name="uid">用户编号</param>
        /// <param name="page">页码</param>
        /// <param name="num">每页数据条数</param>
        /// <param name="starttime">开始时间</param>
        /// <param name="endtime">结束时间</param>
        /// <returns></returns>
        Task<List<UserInfoNoticesReplyDTO>> GetUserInfoNoticesReplyByUserIdAndTimeAsync(int uid, DateTime starttime, DateTime endtime, int page, int num);
        /// <summary>
        /// 根据公告编号查询所有公告回复 //分页
        /// </summary>
        /// <param name="noticesid">公告编号</param>
        /// <param name="page">页码</param>
        /// <param name="num">每页数据条数</param>
        /// <returns></returns>
        Task<List<UserInfoNoticesReplyDTO>> GetUserInfoNoticesReplyByNoticesIdAsync(int noticesid, int page, int num);

        /// <summary>
        /// 根据公告编号查询所有公告回复
        /// </summary>
        /// <param name="noticesid">公告编号</param>
        /// <returns></returns>
        Task<List<UserInfoNoticesReply>> GetUserInfoNoticesReplyByNoticesIdAsync(int noticesid);

        /// <summary>
        /// 根据公告编号以及岗位编号查询所有公告回复
        /// </summary>
        /// <param name="noticesid">公告编号</param>
        ///  <param name="jobsid">岗位编号</param>
        /// <returns></returns>
        Task<List<UserInfoNoticesReply>> GetUserInfoNoticesReplyByNoticesIdAndJobsIdAsync(int noticesid,int jobsid);

        /// <summary>
        /// 批量新增公告回复
        /// </summary>
        /// <param name="addUserInfoNoticesReplyDTOs">新增公告回复DTO集合</param>
        /// <returns>事务次数</returns>
        int AddUserInfoNoticesReplys(List<AddUserInfoNoticesReplyDTO> addUserInfoNoticesReplyDTOs);

        /// <summary>
        /// 批量删除公告回复
        /// </summary>
        /// <param name="userNoticesIds">公告回复编号集合</param>
        /// <returns>事务次数</returns>
        int DeleteUserInfoNoticesReplys(List<UserInfoNoticesReply> userNoticesIds);

        /// <summary>
        /// 修改公告回复=》用户回复操作
        /// </summary>
        /// <param name="NoticesDTO">修改公告回复DTO</param>
        Task<bool> UpdateUserInfoNoticesReplyAsync(UpdateUserInfoNoticesReplyDTO NoticesDTO);
    }
}
